﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Social.Core.Contracts;

namespace Facebook
{
    /// <summary>
    /// This class holds all the application information needed to acess facebook graph
    /// </summary>
    public class Facebookconfig : IRequestUtils
    {
        /// <summary>
        /// url to witch the request will be made
        /// </summary>
        public String ActionUrl { get; set; }

        /// <summary>
        /// url to witch can me made FQL Queries
        /// </summary>
        public string FqlUrl { get; set; }

        /// <summary>
        /// Session token to add to the ActionUrl when a request is made
        /// </summary>
        public String AccessToken { get; set; }

        /// <summary>
        /// Application identification. This Id is obtained during the Application Registration
        /// </summary>
        public String ApplicationID { get; set; }

        /// <summary>
        /// API Key identification. This Id is obtained during the Application Registration
        /// </summary>
        public String ApiKey { get; set; }


        /// <summary>
        /// Secret identification. This Id is obtained during the Application Registration and used on the oauth process
        /// </summary>
        public String AppSecret { get; set; }

        /// <summary>
        /// RequestFormatter is instantiated during the authentication process
        /// </summary>
        /// <see cref="Social.Core.Contracts.IRequestFormatter"/>
        public IRequestFormatter RequestFormatter
        {
            get;

            set;

        }
        
        /// <summary>
        /// Deserializer is instantiated  during the authentication instatiation
        /// </summary>
        /// <see cref="Social.Core.Contracts.IDeserializer"/>
        public IDeserializer Deserializer
        {
            get;
            set;
        }
    }
}
